#ifndef __CORE_FACTORY_B_H_
#define __CORE_FACTORY_B_H_

#include "core_factory.h"
#include "multi_core_b.h"
#include "single_core_b.h"

class CoreFactoryB : public CoreFactory
{
    public:
        virtual std::shared_ptr<SingleCore> CreateSingleCore() override
        {
            return std::static_pointer_cast<SingleCore>(std::make_shared<SingleCoreB>());
        }

        virtual std::shared_ptr<MultiCore> CreateMultiCore() override
        {
            return std::static_pointer_cast<MultiCore>(std::make_shared<MultiCoreB>());
        }
};

#endif 
